<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Dir extends MX_Controller {

	/**
	 * Index Page for this controller.
	 *
	 * Maps to the following URL
	 * 		http://example.com/index.php/welcome
	 *	- or -  
	 * 		http://example.com/index.php/welcome/index
	 *	- or -
	 * Since this controller is set as the default controller in 
	 * config/routes.php, it's displayed at http://example.com/
	 *
	 * So any other public methods not prefixed with an underscore will
	 * map to /index.php/welcome/<method_name>
	 * @see http://codeigniter.com/user_guide/general/urls.html
	 */
	public function __construct(){
		parent::__construct();
		$this->lang->load('Web_ATS', 'pt_BR');
	}
		public function __scandir_recursive($directory, $filter=FALSE)
	{
	 // if the path has a slash at the end we remove it here
	 if(substr($directory,-1) == '/')
	 {
	     $directory = substr($directory,0,-1);
	 }

	 // if the path is not valid or is not a directory ...
	 if(!file_exists($directory) || !is_dir($directory))
	 {
	     // ... we return false and exit the function
	     return FALSE;

	 // ... else if the path is readable
	 }elseif(is_readable($directory))
	 {
	     // initialize directory tree variable
	     $directory_tree = array();

	     // we open the directory
	     $directory_list = opendir($directory);

	     // and scan through the items inside
	     while (FALSE !== ($file = readdir($directory_list)))
	     {
	         // if the filepointer is not the current directory
	         // or the parent directory
	         if($file != '.' && $file != '..')
	         {
	             // we build the new path to scan
	             $path = $directory.'/'.$file;

	             // if the path is readable
	             if(is_readable($path))
	             {
	                 // we split the new path by directories
	                 $subdirectories = explode('/',$path);

	                 // if the new path is a directory
	                 if(is_dir($path))
	                 {
	                     // add the directory details to the file list
	                     $directory_tree[] = array(
	                         'path'    => $path,
	                         'name'    => end($subdirectories),
	                         'kind'    => 'directory',

	                         // we scan the new path by calling this function
	                         'content' => $this->__scandir_recursive($path, $filter));

	                 // if the new path is a file
	                 }elseif(is_file($path))
	                 {
	                     // get the file extension by taking everything after the last dot
	                     $extension = end(explode('.',end($subdirectories)));

	                     // if there is no filter set or the filter is set and matches
	                     if($filter === FALSE || $filter == $extension)
	                     {
	                         // add the file details to the file list
	                         $directory_tree[] = array(
	                             'path'      => $path,
	                             'name'      => end($subdirectories),
	                             'extension' => $extension,
	                             'size'      => filesize($path),
	                             'kind'      => 'file');
	                     }
	                 }
	             }
	         }
	     }
	     // close the directory
	     closedir($directory_list);

	     // return file list
	     return $directory_tree;

	// if the path is not readable ...
	 }else{
	     // ... we return false
	     return FALSE;
	    }
	}
	public function Check()
	{
		$this->load->helper('directory');
		$map = directory_map('./', FALSE, TRUE);
		$a = $this->__scandir_recursive('./');
		echo '<pre>', var_dump($a), '</pre>';
		
	}
	
}

/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */